home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / t_os / vil / vil_vwm.bas < prev    next >
Encoding:
BASIC Source File  |  1993-11-30  |  26.2 KB  |  562 lines

  1. 45024 *VIL_VWM_VER
  2. 45028 VIL_VER%=200
  3. 45032 RETURN
  4. 45064 *VIL_VWM_INITM
  5. 45124 VIL_VWM_AT%=0
  6. 45164 VIL_VWM_T$=""
  7. 45168 VIL_VWM_ATB%=0:VIL_VWM_PMB%=0
  8. 45172 VIL_VWM_WX%=0:VIL_VWM_WY%=0
  9. 45176 VIL_VWM_XM%=8:VIL_VWM_YM%=14
  10. 45180 VIL_VWM_WM%=631:VIL_VWM_ZM%=471
  11. 45184 VIL_VWM_XL%=32:VIL_VWM_YL%=8
  12. 45188 VIL_VWM_WL%=624:VIL_VWM_ZL%=458
  13. 45192 VIL_VWM_XD%=1:VIL_VWM_YD%=1
  14. 45196 VIL_VWM_WD%=1:VIL_VWM_ZD%=1
  15. 45200 VIL_VWM_N%=0
  16. 45204 VIL_VWM_R%=0
  17. 45208 DIM VIL_VWM_X%(VIL_W0%),VIL_VWM_Y%(VIL_W0%)
  18. 45212 DIM VIL_VWM_W%(VIL_W0%),VIL_VWM_Z%(VIL_W0%)
  19. 45216 DIM VIL_VWM_AT%(VIL_WIN_ANMAX%)
  20. 45220 DIM VIL_VWM_T$(VIL_WIN_ANMAX%)
  21. 45224 DIM VIL_VWM_N%(VIL_WIN_ANMAX%)
  22. 45228 VIL_VWM_CB%=VIL_W4%
  23. 45232 VIL_VWM_MCX0%=1:VIL_VWM_MCY0%=2
  24. 45236 VIL_VWM_MCA0$=CHR$(&H7F,&HFF,&H3F,&HFF,&H1F,&HFF,&H0F,&HFF,&H07,&HFF,&H03,&HFF,&H01,&HFF,&H00,&HFF,&H00,&H7F,&H00,&H3F,&H00,&H1F,&H00,&HFF,&H00,&HFF,&H18,&H7F,&H38,&H7F,&HFC,&H7F)
  25. 45240 VIL_VWM_MCD0$=CHR$(&H00,&H00,&H00,&H00,&H40,&H00,&H20,&H00,&H50,&H00,&H38,&H00,&H5C,&H00,&H2E,&H00,&H5F,&H00,&H2F,&H80,&H5E,&H00,&H26,&H00,&H42,&H00,&H03,&H00,&H01,&H00,&H00,&H00)
  26. 45244 VIL_VWM_MCX1%=7:VIL_VWM_MCY1%=9
  27. 45248 VIL_VWM_MCA1$=CHR$(&HFE,&H7F,&HF0,&H0F,&HE0,&H07,&HE0,&H01,&H80,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H80,&H00,&H80,&H00,&HC0,&H01,&HC0,&H01,&HE0,&H03,&HF0,&H07,&HFC,&H1F)
  28. 45252 VIL_VWM_MCD1$=CHR$(&H00,&H00,&H01,&H80,&H0D,&HB0,&H0D,&HB0,&H0D,&HB6,&H6D,&HB6,&H6F,&HF6,&H7F,&HFE,&H7F,&HFE,&H3F,&HFE,&H3F,&HFE,&H1F,&HFC,&H1F,&HFC,&H0F,&HF8,&H03,&HE0,&H00,&H00)
  29. 45256 VIL_VWM_MCX2%=2:VIL_VWM_MCY2%=12
  30. 45260 VIL_VWM_MCA2$=CHR$(&HFF,&HE7,&HFF,&H83,&HFE,&H01,&HF8,&H01,&HE0,&H21,&HC0,&H63,&H81,&HC3,&H07,&HC7,&H0F,&H87,&H0F,&H8F,&H0F,&H0F,&H9F,&H1F,&HF0,&H1F,&HE0,&H3F,&HF0,&H7F,&HF0,&HFF)
  31. 45264 VIL_VWM_MCD2$=CHR$(&H00,&H00,&H00,&H18,&H00,&H7C,&H01,&H8C,&H06,&H08,&H18,&H08,&H20,&H10,&H40,&H10,&H40,&H20,&H40,&H20,&H40,&H40,&H00,&H40,&H00,&H80,&H0F,&H00,&H00,&H00,&H00,&H00)
  32. 45272 VIL_WIN_UB%=14:VIL_WIN_DB%=8:VIL_WIN_RB%=8:VIL_WIN_LB%=8
  33. 45284 PALETTE 1,[VIL_W1%-80+(VIL_W1%<80)*(VIL_W1%-80),VIL_W2%-80+(VIL_W2%<80)*(VIL_W2%-80),VIL_W3%-80+(VIL_W3%<80)*(VIL_W3%-80)],1
  34. 45288 PALETTE 2,[VIL_W1%,VIL_W2%,VIL_W3%],1
  35. 45292 PALETTE 3,[VIL_W1%+80+(255<VIL_W1%)*(VIL_W1%-255),VIL_W2%+80+(255<VIL_W2%)*(VIL_W2%-255),VIL_W3%+80+(255<VIL_W3%)*(VIL_W3%-255)],1
  36. 45296 PALETTE VIL_VWM_CB%,[VIL_W5%,VIL_W6%,VIL_W7%],1
  37. 45300 MOUSE 2,VIL_VWM_MCA0$,VIL_VWM_MCD0$,VIL_VWM_MCX0%,VIL_VWM_MCY0%
  38. 45308 RETURN
  39. 45316 *VIL_VWM_OP
  40. 45448 GOSUB*VIL_WIN_PMA
  41. 45452 IF VIL_WIN_AN%THEN
  42. 45456 LINE(VIL_WIN_X%(VIL_WIN_AN%)+16,VIL_WIN_Y%(VIL_WIN_AN%)-11)-(VIL_WIN_W%(VIL_WIN_AN%)-16,VIL_WIN_Y%(VIL_WIN_AN%)-4),XOR,%3,BF
  43. 45460 ENDIF
  44. 45464 IF VIL_VWM_N%THEN
  45. 45468 VIL_WIN_X%=VIL_VWM_X%(VIL_VWM_N%):VIL_WIN_Y%=VIL_VWM_Y%(VIL_VWM_N%)
  46. 45472 VIL_WIN_W%=VIL_VWM_W%(VIL_VWM_N%):VIL_WIN_Z%=VIL_VWM_Z%(VIL_VWM_N%)
  47. 45476 ENDIF
  48. 45480 GOSUB*VIL_WIN_OP
  49. 45484 IF VIL_E%THEN
  50. 45488 LINE(VIL_WIN_X%(VIL_WIN_AN%)+16,VIL_WIN_Y%(VIL_WIN_AN%)-11)-(VIL_WIN_W%(VIL_WIN_AN%)-16,VIL_WIN_Y%(VIL_WIN_AN%)-4),XOR,%3,BF
  51. 45492 ELSE
  52. 45496 VIL_VWM_AT%(VIL_WIN_AN%)=VIL_VWM_AT%
  53. 45500 VIL_VWM_T$(VIL_WIN_AN%)=VIL_VWM_T$
  54. 45504 VIL_VWM_N%(VIL_WIN_AN%)=VIL_VWM_N%
  55. 45512 LINE(VIL_WIN_X%-8,VIL_WIN_Y%-14)-(VIL_WIN_W%+8,VIL_WIN_Z%+8),PSET,%VIL_VWM_CB%,BF
  56. 45520 LINE(VIL_WIN_X%-5,VIL_WIN_Y%-11)-(VIL_WIN_W%+5,VIL_WIN_Y%-3),PSET,%2,BF
  57. 45524 LINE(VIL_WIN_X%-5,VIL_WIN_Z%+3)-(VIL_WIN_W%+5,VIL_WIN_Z%+5),PSET,%2,BF
  58. 45528 LINE(VIL_WIN_X%-5,VIL_WIN_Y%-2)-(VIL_WIN_X%-1,VIL_WIN_Z%+2),PSET,%2,BF
  59. 45532 LINE(VIL_WIN_W%+1,VIL_WIN_Y%-2)-(VIL_WIN_W%+5,VIL_WIN_Z%+2),PSET,%2,BF
  60. 45540 CONNECT(VIL_WIN_W%+7,VIL_WIN_Y%-13)-(VIL_WIN_X%-7,VIL_WIN_Y%-13)-(VIL_WIN_X%-7,VIL_WIN_Z%+7),%3
  61. 45544 CONNECT(VIL_WIN_W%+6,VIL_WIN_Y%-12)-(VIL_WIN_X%-6,VIL_WIN_Y%-12)-(VIL_WIN_X%-6,VIL_WIN_Z%+6),%3
  62. 45548 CONNECT(VIL_WIN_X%-6,VIL_WIN_Z%+7)-(VIL_WIN_W%+7,VIL_WIN_Z%+7)-(VIL_WIN_W%+7,VIL_WIN_Y%-12),%1
  63. 45552 CONNECT(VIL_WIN_X%-5,VIL_WIN_Z%+6)-(VIL_WIN_W%+6,VIL_WIN_Z%+6)-(VIL_WIN_W%+6,VIL_WIN_Y%-11),%1
  64. 45560 CONNECT(VIL_WIN_W%+1,VIL_WIN_Y%-2)-(VIL_WIN_X%-2,VIL_WIN_Y%-2)-(VIL_WIN_X%-2,VIL_WIN_Z%+1),%1
  65. 45564 CONNECT(VIL_WIN_W%,VIL_WIN_Y%-1)-(VIL_WIN_X%-1,VIL_WIN_Y%-1)-(VIL_WIN_X%-1,VIL_WIN_Z%),%1
  66. 45568 CONNECT(VIL_WIN_X%-2,VIL_WIN_Z%+2)-(VIL_WIN_W%+2,VIL_WIN_Z%+2)-(VIL_WIN_W%+2,VIL_WIN_Y%-2),%3
  67. 45572 CONNECT(VIL_WIN_X%-1,VIL_WIN_Z%+1)-(VIL_WIN_W%+1,VIL_WIN_Z%+1)-(VIL_WIN_W%+1,VIL_WIN_Y%-1),%3
  68. 45580 IF(VIL_VWM_AT%AND 2)=2 THEN
  69. 45584 LINE(VIL_WIN_X%-5,VIL_WIN_Y%-11)-(VIL_WIN_X%+3,VIL_WIN_Y%-3),PSET,%1,B
  70. 45588 LINE(VIL_WIN_X%-5,VIL_WIN_Y%-11)-(VIL_WIN_X%+3,VIL_WIN_Y%-3),PSET,%1
  71. 45592 LINE(VIL_WIN_X%+3,VIL_WIN_Y%-11)-(VIL_WIN_X%-5,VIL_WIN_Y%-3),PSET,%1
  72. 45596 ENDIF
  73. 45604 IF(VIL_VWM_AT%AND 4)=4 THEN
  74. 45608 LINE(VIL_WIN_X%+5,VIL_WIN_Y%-11)-(VIL_WIN_X%+13,VIL_WIN_Y%-3),PSET,%1,B
  75. 45612 LINE(VIL_WIN_X%+13,VIL_WIN_Y%-11)-(VIL_WIN_X%+5,VIL_WIN_Y%-3),PSET,%1
  76. 45616 ENDIF
  77. 45624 IF(VIL_VWM_AT%AND 1)=1 THEN
  78. 45628 LINE(VIL_WIN_W%-13,VIL_WIN_Y%-11)-(VIL_WIN_W%-5,VIL_WIN_Y%-3),PSET,%1,B
  79. 45632 LINE(VIL_WIN_W%-13,VIL_WIN_Y%-8)-(VIL_WIN_W%-5,VIL_WIN_Y%-8),PSET,%1
  80. 45636 LINE(VIL_WIN_W%-13,VIL_WIN_Y%-6)-(VIL_WIN_W%-5,VIL_WIN_Y%-6),PSET,%1
  81. 45640 ENDIF
  82. 45648 IF(VIL_VWM_AT%AND 16)=16 THEN
  83. 45652 LINE(VIL_WIN_W%-3,VIL_WIN_Y%-11)-(VIL_WIN_W%+5,VIL_WIN_Y%-3),PSET,%1,B
  84. 45656 LINE(VIL_WIN_W%-3,VIL_WIN_Y%-8)-(VIL_WIN_W%+2,VIL_WIN_Y%-3),PSET,%1,B
  85. 45660 ENDIF
  86. 45668 VIL_W0%=INT(VIL_WIN_W%-VIL_WIN_X%-36)/5
  87. 45672 IF VIL_W0%>0 THEN
  88. 45676 SYMBOL(VIL_WIN_X%+18,VIL_WIN_Y%-10),LEFT$(VIL_VWM_T$,VIL_W0%),.5!,.5!,%1,,,,1
  89. 45680 ENDIF
  90. 45688 LINE(VIL_WIN_X%+16,VIL_WIN_Y%-11)-(VIL_WIN_W%-16,VIL_WIN_Y%-4),XOR,%3,BF
  91. 45692 ENDIF
  92. 45700 GOSUB*VIL_WIN_PMR
  93. 45704 RETURN
  94. 45712 *VIL_VWM_CL
  95. 45788 IF VIL_VWM_N%THEN
  96. 45792 VIL_VWM_X%(VIL_VWM_N%)=VIL_WIN_X%:VIL_VWM_Y%(VIL_VWM_N%)=VIL_WIN_Y%
  97. 45796 VIL_VWM_W%(VIL_VWM_N%)=VIL_WIN_W%:VIL_VWM_Z%(VIL_VWM_N%)=VIL_WIN_Z%
  98. 45800 ENDIF
  99. 45804 GOSUB*VIL_WIN_PMA
  100. 45808 GOSUB*VIL_WIN_CL
  101. 45812 VIL_VWM_AT%=VIL_VWM_AT%(VIL_WIN_AN%)
  102. 45816 VIL_VWM_T$=VIL_VWM_T$(VIL_WIN_AN%)
  103. 45820 VIL_VWM_N%=VIL_VWM_N%(VIL_WIN_AN%)
  104. 45824 IF VIL_WIN_AN%THEN
  105. 45828 LINE(VIL_WIN_X%+16,VIL_WIN_Y%-11)-(VIL_WIN_W%-16,VIL_WIN_Y%-4),XOR,%3,BF
  106. 45832 ENDIF
  107. 45836 GOSUB*VIL_WIN_PMR
  108. 45840 RETURN
  109. 45848 *VIL_VWM_CLDMY
  110. 45924 IF VIL_VWM_N%THEN
  111. 45928 VIL_VWM_X%(VIL_VWM_N%)=VIL_WIN_X%:VIL_VWM_Y%(VIL_VWM_N%)=VIL_WIN_Y%
  112. 45932 VIL_VWM_W%(VIL_VWM_N%)=VIL_WIN_W%:VIL_VWM_Z%(VIL_VWM_N%)=VIL_WIN_Z%
  113. 45936 ENDIF
  114. 45940 GOSUB*VIL_WIN_PMA
  115. 45944 GOSUB*VIL_WIN_CLDMY
  116. 45948 LINE(VIL_WIN_X%(VIL_WIN_AN%+1)+16,VIL_WIN_Y%(VIL_WIN_AN%+1)-11)-(VIL_WIN_W%(VIL_WIN_AN%+1)-16,VIL_WIN_Y%(VIL_WIN_AN%+1)-4),XOR,%3,BF
  117. 45952 VIL_VWM_AT%=VIL_VWM_AT%(VIL_WIN_AN%)
  118. 45956 VIL_VWM_T$=VIL_VWM_T$(VIL_WIN_AN%)
  119. 45960 VIL_VWM_N%=VIL_VWM_N%(VIL_WIN_AN%)
  120. 45964 IF VIL_WIN_AN%THEN
  121. 45968 LINE(VIL_WIN_X%+16,VIL_WIN_Y%-11)-(VIL_WIN_W%-16,VIL_WIN_Y%-4),XOR,%3,BF
  122. 45972 ENDIF
  123. 45976 GOSUB*VIL_WIN_PMR
  124. 45980 RETURN
  125. 45988 *VIL_VWM_CLALL
  126. 46020 WHILE VIL_WIN_AN%
  127. 46024 GOSUB*VIL_VWM_CL
  128. 46028 WEND
  129. 46032 RETURN
  130. 46040 *VIL_VWM_CLS
  131. 46068 LINE(0,0)-(VIL_WIN_W%-VIL_WIN_X%,VIL_WIN_Z%-VIL_WIN_Y%),PSET,%VIL_VWM_CB%,BF
  132. 46072 RETURN
  133. 46080 *VIL_VWM_CHECK
  134. 46148 VIL_VWM_R%=0
  135. 46152 IF VIL_KN%=-2 THEN
  136. 46156 GOSUB*VIL_VWM_WIN
  137. 46160 ELSE IF VIL_KN%=-3 AND VIL_KY%=27 THEN
  138. 46164 VIL_WIN_X%=VIL_WIN_W%+(VIL_WIN_W%-582)*(VIL_WIN_W%>582)
  139. 46168 VIL_WIN_Y%=VIL_WIN_Y%-32+(VIL_WIN_Y%-46)*(VIL_WIN_Y%<46)+(VIL_WIN_Y%-406)*(VIL_WIN_Y%>406)
  140. 46176 GOSUB*VIL_VWM_MENU
  141. 46180 ENDIF
  142. 46184 RETURN
  143. 46192 *VIL_VWM_WIN
  144. 46240 VIL_VWM_R%=0
  145. 46244 IF(VIL_VWM_AT%AND 2)=2 AND VIL_WIN_X%-6<VIL_MX%AND VIL_MX%<VIL_WIN_X%+4 AND VIL_WIN_Y%-12<VIL_MY%AND VIL_MY%<VIL_WIN_Y%-2 THEN
  146. 46248 GOSUB*VIL_VWM_CLOSE
  147. 46252 ELSE IF(VIL_VWM_AT%AND 4)=4 AND VIL_WIN_X%+4<VIL_MX%AND VIL_MX%<VIL_WIN_X%+14 AND VIL_WIN_Y%-12<VIL_MY%AND VIL_MY%<VIL_WIN_Y%-2 THEN
  148. 46256 GOSUB*VIL_VWM_HIDE
  149. 46260 ELSE IF(VIL_VWM_AT%AND 1)=1 AND VIL_WIN_W%-14<VIL_MX%AND VIL_MX%<VIL_WIN_W%-4 AND VIL_WIN_Y%-12<VIL_MY%AND VIL_MY%<VIL_WIN_Y%-2 THEN
  150. 46264 VIL_WIN_X%=VIL_WIN_W%+(VIL_WIN_W%-582)*(VIL_WIN_W%>582)
  151. 46268 VIL_WIN_Y%=VIL_WIN_Y%-32+(VIL_WIN_Y%-46)*(VIL_WIN_Y%<46)+(VIL_WIN_Y%-406)*(VIL_WIN_Y%>406)
  152. 46276 GOSUB*VIL_VWM_MENU
  153. 46280 ELSE IF(VIL_VWM_AT%AND 16)=16 AND VIL_WIN_W%-4<VIL_MX%AND VIL_MX%<VIL_WIN_W%+6 AND VIL_WIN_Y%-12<VIL_MY%AND VIL_MY%<VIL_WIN_Y%-2 THEN
  154. 46284 GOSUB*VIL_VWM_RESIZE
  155. 46288 ELSE IF(VIL_VWM_AT%AND 8)=8 AND VIL_WIN_X%-6<VIL_MX%AND VIL_MX%<VIL_WIN_W%+6 AND VIL_WIN_Y%-12<VIL_MY%AND VIL_MY%<VIL_WIN_Y%-2 THEN
  156. 46292 GOSUB*VIL_VWM_MOVE
  157. 46296 ENDIF
  158. 46300 RETURN
  159. 46308 *VIL_VWM_MENU
  160. 46372 GOSUB*VIL_WIN_PMA
  161. 46376 LINE(VIL_WIN_X%(VIL_WIN_AN%)+16,VIL_WIN_Y%(VIL_WIN_AN%)-11)-(VIL_WIN_W%(VIL_WIN_AN%)-16,VIL_WIN_Y%(VIL_WIN_AN%)-4),XOR,%3,BF
  162. 46380 VIL_VWM_ATB%=VIL_VWM_AT%
  163. 46384 VIL_WIN_W%=VIL_WIN_X%+49:VIL_WIN_Z%=VIL_WIN_Y%+97
  164. 46388 VIL_VWM_T$="VWM":VIL_VWM_AT%=0:VIL_VWM_N%=0
  165. 46392 GOSUB*VIL_VWM_OP
  166. 46396 SYMBOL(5,0),"<VWM>",1,1,6
  167. 46400 SYMBOL(1,20),"CLOSE",1,1,%1-((VIL_VWM_ATB%AND 2)=2)*2
  168. 46404 SYMBOL(1,36),"HIDE",1,1,%1-((VIL_VWM_ATB%AND 4)=4)*2
  169. 46408 SYMBOL(1,52),"MOVE",1,1,%1-((VIL_VWM_ATB%AND 8)=8)*2
  170. 46412 SYMBOL(1,68),"RESIZE",1,1,%1-((VIL_VWM_ATB%AND 16)=16)*2
  171. 46416 SYMBOL(1,84),"<INFO>",1,1,%3
  172. 46424 VIL_X%=1:VIL_Y%=20:VIL_W%=VIL_X%+47:VIL_Z%=VIL_Y%+14
  173. 46428 VIL_YL%=16:VIL_XN%=1:VIL_YN%=5:VIL_MSEL_BD%=0:VIL_C%=15
  174. 46432 VIL_MSEL_BC%=0:VIL_MSEL_MN%=1:VIL_MSEL_BB%=1:VIL_MSEL_BE%=5
  175. 46436 GOSUB*VIL_MSEL_M
  176. 46440 IF VIL_KN%=-3 OR(0<VIL_KN%AND VIL_KN%<5 AND(VIL_VWM_ATB%AND 2^VIL_KN%)=0)              THEN 46436
  177. 46444 GOSUB*VIL_VWM_CL
  178. 46448 GOSUB*VIL_WIN_PMA
  179. 46452 LINE(VIL_WIN_X%(VIL_WIN_AN%)+16,VIL_WIN_Y%(VIL_WIN_AN%)-11)-(VIL_WIN_W%(VIL_WIN_AN%)-16,VIL_WIN_Y%(VIL_WIN_AN%)-4),XOR,%3,BF
  180. 46456 GOSUB*VIL_WIN_PMR
  181. 46460 IF VIL_KN%<1 THEN RETURN
  182. 46468 ON VIL_KN%GOTO 46476,46488,46500,46536,46572
  183. 46476 GOSUB*VIL_VWM_CLOSE
  184. 46480 RETURN
  185. 46488 IF VIL_KY%THEN GOSUB*VIL_VWM_KHIDE ELSE GOSUB*VIL_VWM_HIDE
  186. 46492 RETURN
  187. 46500 IF VIL_KY%THEN
  188. 46504 GOSUB*VIL_VWM_KMOVE
  189. 46508 ELSE
  190. 46512 VIL_MX%=(VIL_WIN_X%+VIL_WIN_W%)\2:VIL_MY%=VIL_WIN_Y%-4
  191. 46516 MOUSE 1,VIL_MX%,VIL_MY%
  192. 46520 GOSUB*VIL_VWM_MOVE
  193. 46524 ENDIF
  194. 46528 RETURN
  195. 46536 IF VIL_KY%THEN
  196. 46540 GOSUB*VIL_VWM_KRESIZE
  197. 46544 ELSE
  198. 46548 VIL_MX%=VIL_WIN_W%:VIL_MY%=VIL_WIN_Y%-6
  199. 46552 MOUSE 1,VIL_MX%,VIL_MY%
  200. 46556 GOSUB*VIL_VWM_RESIZE
  201. 46560 ENDIF
  202. 46564 RETURN
  203. 46572 VIL_WIN_X%=VIL_WIN_X%+(VIL_WIN_X%-448)*(VIL_WIN_X%>448)
  204. 46576 VIL_WIN_Y%=VIL_WIN_Y%+(VIL_WIN_Y%-380)*(VIL_WIN_Y%>380)
  205. 46580 GOSUB*VIL_VWM_INF
  206. 46584 RETURN
  207. 46592 *VIL_VWM_INF
  208. 46624 VIL_WIN_W%=VIL_WIN_X%+183:VIL_WIN_Z%=VIL_WIN_Y%+91
  209. 46628 VIL_VWM_T$="VWM INFORMATION":VIL_VWM_AT%=0:VIL_VWM_N%=0
  210. 46632 VIL_E%=0
  211. 46636 GOSUB*VIL_VWM_OP
  212. 46640 IF VIL_E%=0 THEN
  213. 46648 SYMBOL(8,8),"POSITION:("+FNVIL_P2S0$(VIL_WIN_X%(VIL_WIN_AN%-1),3)+","+FNVIL_P2S0$(VIL_WIN_Y%(VIL_WIN_AN%-1),3)+")",1,1,4
  214. 46656 SYMBOL(8,28),"SIZE    : "+FNVIL_P2S0$(VIL_WIN_W%(VIL_WIN_AN%-1)-VIL_WIN_X%(VIL_WIN_AN%-1)+1,3)+"×"+FNVIL_P2S0$(VIL_WIN_Z%(VIL_WIN_AN%-1)-VIL_WIN_Y%(VIL_WIN_AN%-1)+1,3),1,1,4
  215. 46664 SYMBOL(8,48),"WINDOW  : "+FNVIL_P2S0$(VIL_WIN_AN%-1,3)+"/"+FNVIL_P2S0$(VIL_WIN_ANMAX%,3),1,1,4
  216. 46672 SYMBOL(8,68),"FREE    : "+FNVIL_P2S0$((VIL_WIN_BFMAX&-VIL_WIN_BFO&(VIL_WIN_AN%-1))\512,4)+"K/"+FNVIL_P2S0$(VIL_WIN_BFMAX&\512,4)+"K",1,1,4
  217. 46676 GOSUB*VIL_INP_MVWAIT
  218. 46680 GOSUB*VIL_VWM_CL
  219. 46684 ENDIF
  220. 46688 RETURN
  221. 46696 *VIL_VWM_MOVE
  222. 46748 MOUSE 2,VIL_VWM_MCA1$,VIL_VWM_MCD1$,VIL_VWM_MCX1%,VIL_VWM_MCY1%
  223. 46752 MOUSE 1,VIL_MX%,VIL_MY%,1
  224. 46756 VIL_VWM_PMB%=VIL_WIN_PM%:GOSUB*VIL_WIN_PMA
  225. 46760 VIL_WIN_X%=VIL_WIN_X%-8:VIL_WIN_Y%=VIL_WIN_Y%-14
  226. 46764 VIL_WIN_W%=VIL_WIN_W%+8:VIL_WIN_Z%=VIL_WIN_Z%+8
  227. 46768 MOUSE 4,VIL_VWM_XM%+VIL_MX%-VIL_WIN_X%-8,VIL_VWM_YM%+VIL_MY%-VIL_WIN_Y%-14,VIL_VWM_WM%+VIL_MX%-VIL_WIN_W%+8,VIL_VWM_ZM%+VIL_MY%-VIL_WIN_Z%+8
  228. 46772 VIL_W0%=0:VIL_W1%=0:VIL_W2%=0:VIL_W3%=0
  229. 46776 VIL_WIN_W%=VIL_WIN_W%-VIL_WIN_X%:VIL_WIN_Z%=VIL_WIN_Z%-VIL_WIN_Y%
  230. 46780 LINE(VIL_WIN_X%,VIL_WIN_Y%)-STEP(VIL_WIN_W%,VIL_WIN_Z%),XOR,7,B
  231. 46784 WHILE MOUSE(2,0)
  232. 46788 VIL_MX%=MOUSE(9):VIL_MY%=MOUSE(10)
  233. 46792 IF VIL_MX%OR VIL_MY%THEN
  234. 46796 LINE(VIL_WIN_X%+VIL_W2%,VIL_WIN_Y%+VIL_W3%)-STEP(VIL_WIN_W%,VIL_WIN_Z%),XOR,7,B
  235. 46800 VIL_W0%=VIL_W0%+VIL_MX%:VIL_W1%=VIL_W1%+VIL_MY%
  236. 46804 VIL_W2%=VIL_W0%-VIL_W0%MOD VIL_VWM_XD%
  237. 46808 VIL_W3%=VIL_W1%-VIL_W1%MOD VIL_VWM_YD%
  238. 46812 LINE(VIL_WIN_X%+VIL_W2%,VIL_WIN_Y%+VIL_W3%)-STEP(VIL_WIN_W%,VIL_WIN_Z%),XOR,7,B
  239. 46816 ENDIF
  240. 46820 WEND
  241. 46824 VIL_WIN_X%=VIL_WIN_X%+VIL_W2%:VIL_WIN_Y%=VIL_WIN_Y%+VIL_W3%
  242. 46828 LINE(VIL_WIN_X%,VIL_WIN_Y%)-STEP(VIL_WIN_W%,VIL_WIN_Z%),XOR,7,B
  243. 46836 IF MOUSE(2,1)THEN
  244. 46840 VIL_WIN_X%=VIL_WIN_X%(VIL_WIN_AN%)
  245. 46844 VIL_WIN_Y%=VIL_WIN_Y%(VIL_WIN_AN%)
  246. 46848 VIL_WIN_W%=VIL_WIN_W%(VIL_WIN_AN%)
  247. 46852 VIL_WIN_Z%=VIL_WIN_Z%(VIL_WIN_AN%)
  248. 46856 ELSE
  249. 46860 VIL_WIN_X%=VIL_WIN_X%+8:VIL_WIN_Y%=VIL_WIN_Y%+14
  250. 46868 GOSUB*VIL_VWM_MV
  251. 46872 ENDIF
  252. 46876 MOUSE 2,VIL_VWM_MCA0$,VIL_VWM_MCD0$,VIL_VWM_MCX0%,VIL_VWM_MCY0%
  253. 46880 MOUSE 4,0,0,639,479
  254. 46884 IF VIL_VWM_PMB%THEN GOSUB*VIL_WIN_PMR
  255. 46888 RETURN
  256. 46896 *VIL_VWM_KMOVE
  257. 46940 WHILE INKEY$<>"":WEND
  258. 46944 VIL_VWM_PMB%=VIL_WIN_PM%:GOSUB*VIL_WIN_PMA
  259. 46948 VIL_WIN_X%=VIL_WIN_X%-8:VIL_WIN_Y%=VIL_WIN_Y%-14
  260. 46952 VIL_WIN_W%=VIL_WIN_W%-VIL_WIN_X%+8:VIL_WIN_Z%=VIL_WIN_Z%-VIL_WIN_Y%+8
  261. 46956 LINE(VIL_WIN_X%,VIL_WIN_Y%)-STEP(VIL_WIN_W%,VIL_WIN_Z%),XOR,7,B
  262. 46960 VIL_MSEL_KY%=0
  263. 46964 WHILE VIL_MSEL_KY%<>-1 AND VIL_MSEL_KY%<>-2
  264. 46968 GOSUB*VIL_MSEL_KY
  265. 46972 IF VIL_MSEL_KY%=-4 THEN 46968
  266. 46976 LINE(VIL_WIN_X%,VIL_WIN_Y%)-STEP(VIL_WIN_W%,VIL_WIN_Z%),XOR,7,B
  267. 46980 VIL_WIN_X%=VIL_WIN_X%+((VIL_MSEL_KY%=-6)-(VIL_MSEL_KY%=-5))*VIL_VWM_XD%
  268. 46984 VIL_WIN_X%=VIL_WIN_X%-((VIL_WIN_X%+8<VIL_VWM_XM%)-(VIL_VWM_WM%<VIL_WIN_X%+VIL_WIN_W%-8))*VIL_VWM_XD%
  269. 46988 VIL_WIN_X%=VIL_WIN_X%+((VIL_MSEL_KY%=-10)-(VIL_MSEL_KY%=-9))*VIL_VWM_XD%*8
  270. 46996 VIL_WIN_X%=VIL_WIN_X%-((VIL_WIN_X%+8<VIL_VWM_XM%)-(VIL_VWM_WM%<VIL_WIN_X%+VIL_WIN_W%-8))*VIL_VWM_XD%*8
  271. 47004 VIL_WIN_Y%=VIL_WIN_Y%+((VIL_MSEL_KY%=-7)-(VIL_MSEL_KY%=-8))*VIL_VWM_YD%
  272. 47008 VIL_WIN_Y%=VIL_WIN_Y%-((VIL_WIN_Y%+14<VIL_VWM_YM%)-(VIL_VWM_ZM%<VIL_WIN_Y%+VIL_WIN_Z%-8))*VIL_VWM_YD%
  273. 47012 VIL_WIN_Y%=VIL_WIN_Y%+((VIL_MSEL_KY%=-11)-(VIL_MSEL_KY%=-12))*VIL_VWM_YD%*8
  274. 47020 VIL_WIN_Y%=VIL_WIN_Y%-((VIL_WIN_Y%+14<VIL_VWM_YM%)-(VIL_VWM_ZM%<VIL_WIN_Y%+VIL_WIN_Z%-8))*VIL_VWM_YD%*8
  275. 47024 LINE(VIL_WIN_X%,VIL_WIN_Y%)-STEP(VIL_WIN_W%,VIL_WIN_Z%),XOR,7,B
  276. 47028 WEND
  277. 47032 LINE(VIL_WIN_X%,VIL_WIN_Y%)-STEP(VIL_WIN_W%,VIL_WIN_Z%),XOR,7,B
  278. 47040 IF VIL_MSEL_KY%=-2 THEN
  279. 47044 VIL_WIN_X%=VIL_WIN_X%+8:VIL_WIN_Y%=VIL_WIN_Y%+14
  280. 47048 GOSUB*VIL_VWM_MV
  281. 47052 ELSE
  282. 47056 VIL_WIN_X%=VIL_WIN_X%(VIL_WIN_AN%)
  283. 47060 VIL_WIN_Y%=VIL_WIN_Y%(VIL_WIN_AN%)
  284. 47064 VIL_WIN_W%=VIL_WIN_W%(VIL_WIN_AN%)
  285. 47068 VIL_WIN_Z%=VIL_WIN_Z%(VIL_WIN_AN%)
  286. 47072 ENDIF
  287. 47076 IF VIL_VWM_PMB%THEN GOSUB*VIL_WIN_PMR
  288. 47080 RETURN
  289. 47088 *VIL_VWM_MV
  290. 47148 VIL_E%=0
  291. 47152 GET@A(VIL_WIN_X%(VIL_WIN_AN%)-8,VIL_WIN_Y%(VIL_WIN_AN%)-14)-(VIL_WIN_W%(VIL_WIN_AN%)+8,VIL_WIN_Z%(VIL_WIN_AN%)+8),VIL_WIN_BF%,VIL_WIN_BFO&(VIL_WIN_AN%)
  292. 47156 IF VIL_E%=0 THEN
  293. 47160 VIL_WIN_W%=VIL_WIN_X%+VIL_WIN_W%(VIL_WIN_AN%)-VIL_WIN_X%(VIL_WIN_AN%)
  294. 47164 VIL_WIN_Z%=VIL_WIN_Y%+VIL_WIN_Z%(VIL_WIN_AN%)-VIL_WIN_Y%(VIL_WIN_AN%)
  295. 47168 PUT@A(VIL_WIN_X%(VIL_WIN_AN%)-8,VIL_WIN_Y%(VIL_WIN_AN%)-14)-(VIL_WIN_W%(VIL_WIN_AN%)+8,VIL_WIN_Z%(VIL_WIN_AN%)+8),VIL_WIN_BF%,,,,,VIL_WIN_BFO&(VIL_WIN_AN%-1)
  296. 47172 GET@A(VIL_WIN_X%-8,VIL_WIN_Y%-14)-(VIL_WIN_W%+8,VIL_WIN_Z%+8),VIL_WIN_BF%,VIL_WIN_BFO&(VIL_WIN_AN%-1)
  297. 47176 PUT@A(VIL_WIN_X%-8,VIL_WIN_Y%-14)-(VIL_WIN_W%+8,VIL_WIN_Z%+8),VIL_WIN_BF%,,,,,VIL_WIN_BFO&(VIL_WIN_AN%)
  298. 47184 VIL_WIN_X%(VIL_WIN_AN%)=VIL_WIN_X%
  299. 47188 VIL_WIN_Y%(VIL_WIN_AN%)=VIL_WIN_Y%
  300. 47192 VIL_WIN_W%(VIL_WIN_AN%)=VIL_WIN_W%
  301. 47196 VIL_WIN_Z%(VIL_WIN_AN%)=VIL_WIN_Z%
  302. 47200 VIL_VWM_R%=8
  303. 47204 ELSE
  304. 47208 VIL_WIN_X%=VIL_WIN_X%(VIL_WIN_AN%)
  305. 47212 VIL_WIN_Y%=VIL_WIN_Y%(VIL_WIN_AN%)
  306. 47216 VIL_VWM_R%=0
  307. 47220 ENDIF
  308. 47224 RETURN
  309. 47232 *VIL_VWM_CLOSE
  310. 47264 GOSUB*VIL_VWM_CL
  311. 47268 VIL_VWM_R%=2
  312. 47272 RETURN
  313. 47280 *VIL_VWM_HIDE
  314. 47324 VIL_VWM_PMB%=VIL_WIN_PM%:GOSUB*VIL_WIN_PMA
  315. 47328 GOSUB*VIL_VWM_HD0
  316. 47332 IF VIL_E%=0 THEN
  317. 47336 WHILE MOUSE(2,0):WEND
  318. 47340 GOSUB*VIL_VWM_HD1
  319. 47344 VIL_VWM_R%=4
  320. 47348 ELSE
  321. 47352 VIL_VWM_R%=0
  322. 47356 ENDIF
  323. 47360 IF VIL_VWM_PMB%THEN GOSUB*VIL_WIN_PMR
  324. 47364 RETURN
  325. 47372 *VIL_VWM_KHIDE
  326. 47416 WHILE INKEY$<>"":WEND
  327. 47420 VIL_VWM_PMB%=VIL_WIN_PM%:GOSUB*VIL_WIN_PMA
  328. 47424 GOSUB*VIL_VWM_HD0
  329. 47428 IF VIL_E%=0 THEN
  330. 47432 WHILE INKEY$="":WEND
  331. 47436 GOSUB*VIL_VWM_HD1
  332. 47440 VIL_VWM_R%=4
  333. 47444 ENDIF
  334. 47448 IF VIL_VWM_PMB%THEN GOSUB*VIL_WIN_PMR
  335. 47452 RETURN
  336. 47460 *VIL_VWM_HD0
  337. 47496 VIL_E%=0
  338. 47500 GET@A(VIL_WIN_X%(VIL_WIN_AN%)-8,VIL_WIN_Y%(VIL_WIN_AN%)-14)-(VIL_WIN_W%(VIL_WIN_AN%)+8,VIL_WIN_Z%(VIL_WIN_AN%)+8),VIL_WIN_BF%,VIL_WIN_BFO&(VIL_WIN_AN%)
  339. 47504 IF VIL_E%=0 THEN
  340. 47508 PUT@A(VIL_WIN_X%(VIL_WIN_AN%)-8,VIL_WIN_Y%(VIL_WIN_AN%)-14)-(VIL_WIN_W%(VIL_WIN_AN%)+8,VIL_WIN_Z%(VIL_WIN_AN%)+8),VIL_WIN_BF%,,,,,VIL_WIN_BFO&(VIL_WIN_AN%-1)
  341. 47512 ENDIF
  342. 47516 RETURN
  343. 47524 *VIL_VWM_HD1
  344. 47556 PUT@A(VIL_WIN_X%(VIL_WIN_AN%)-8,VIL_WIN_Y%(VIL_WIN_AN%)-14)-(VIL_WIN_W%(VIL_WIN_AN%)+8,VIL_WIN_Z%(VIL_WIN_AN%)+8),VIL_WIN_BF%,,,,,VIL_WIN_BFO&(VIL_WIN_AN%)
  345. 47560 RETURN
  346. 47568 *VIL_VWM_HD2
  347. 47600 GET@A(VIL_WIN_X%(VIL_WIN_AN%)-8,VIL_WIN_Y%(VIL_WIN_AN%)-14)-(VIL_WIN_W%(VIL_WIN_AN%)+8,VIL_WIN_Z%(VIL_WIN_AN%)+8),VIL_WIN_BF%,VIL_WIN_BFO&(VIL_WIN_AN%-1)
  348. 47604 PUT@A(VIL_WIN_X%(VIL_WIN_AN%)-8,VIL_WIN_Y%(VIL_WIN_AN%)-14)-(VIL_WIN_W%(VIL_WIN_AN%)+8,VIL_WIN_Z%(VIL_WIN_AN%)+8),VIL_WIN_BF%,,,,,VIL_WIN_BFO&(VIL_WIN_AN%)
  349. 47608 RETURN
  350. 47616 *VIL_VWM_RESIZE
  351. 47676 MOUSE 2,VIL_VWM_MCA2$,VIL_VWM_MCD2$,VIL_VWM_MCX2%,VIL_VWM_MCY2%
  352. 47680 MOUSE 1,VIL_MX%,VIL_MY%,1
  353. 47684 VIL_VWM_PMB%=VIL_WIN_PM%:GOSUB*VIL_WIN_PMA
  354. 47700 VIL_WIN_X%=VIL_WIN_X%-8:VIL_WIN_Y%=VIL_WIN_Y%-14
  355. 47704 VIL_WIN_W%=VIL_WIN_W%+8:VIL_WIN_Z%=VIL_WIN_Z%+8
  356. 47708 VIL_W0%=VIL_WIN_W%-VIL_VWM_WL%-7-VIL_VWM_XM%
  357. 47712 VIL_W1%=VIL_WIN_Z%-VIL_VWM_ZL%-7-VIL_VWM_YM%
  358. 47716 VIL_W2%=VIL_WIN_X%+VIL_VWM_WL%+7-VIL_VWM_WM%
  359. 47720 VIL_W3%=VIL_WIN_Y%+VIL_VWM_ZL%+13-VIL_VWM_ZM%
  360. 47736 MOUSE 4,VIL_VWM_XM%-VIL_W0%*(VIL_W0%>0)-8,VIL_VWM_YM%-VIL_W1%*(VIL_W1%>0)-14,VIL_VWM_WM%-VIL_W2%*(VIL_W2%<0)+8,VIL_VWM_ZM%-VIL_W3%*(VIL_W3%<0)+8
  361. 47744 VIL_W0%=0:VIL_W1%=0
  362. 47748 LINE(VIL_WIN_X%,VIL_WIN_Y%)-(VIL_WIN_W%,VIL_WIN_Z%),XOR,7,B
  363. 47752 WHILE MOUSE(2,0)
  364. 47756 IF MOUSE(9)OR MOUSE(10)THEN
  365. 47760 LOCATE 0,0:PRINT VIL_W0%;VIL_W1%
  366. 47764 VIL_MX%=MOUSE(0):VIL_MY%=MOUSE(1)
  367. 47768 LINE(VIL_WIN_X%,VIL_WIN_Y%)-(VIL_WIN_W%,VIL_WIN_Z%),XOR,7,B
  368. 47772 IF VIL_MX%<=VIL_WIN_X%(VIL_WIN_AN%)-8 THEN
  369. 47776 VIL_WIN_X%=VIL_MX%+(VIL_WIN_X%-VIL_MX%)MOD VIL_VWM_WD%
  370. 47780 VIL_WIN_W%=VIL_WIN_W%(VIL_WIN_AN%)+8:VIL_W0%=1
  371. 47784 ELSE IF VIL_MX%>=VIL_WIN_W%(VIL_WIN_AN%)+8 THEN
  372. 47788 VIL_WIN_W%=VIL_MX%-(VIL_MX%-VIL_WIN_W%)MOD VIL_VWM_WD%
  373. 47792 VIL_WIN_X%=VIL_WIN_X%(VIL_WIN_AN%)-8:VIL_W0%=2
  374. 47796 ELSE
  375. 47800 IF VIL_W0%=1 THEN
  376. 47804 VIL_W2%=VIL_WIN_W%-VIL_VWM_XL%-15-VIL_MX%
  377. 47808 VIL_W2%=VIL_MX%-VIL_W2%*(VIL_W2%<0)
  378. 47812 VIL_WIN_X%=VIL_W2%+(VIL_WIN_X%-VIL_W2%)MOD VIL_VWM_WD%
  379. 47816 ELSE IF VIL_W0%=2 THEN
  380. 47820 VIL_W2%=VIL_WIN_X%+VIL_VWM_XL%+15-VIL_MX%
  381. 47824 VIL_W2%=VIL_MX%-VIL_W2%*(VIL_W2%>0)
  382. 47828 VIL_WIN_W%=VIL_W2%-(VIL_W2%-VIL_WIN_W%)MOD VIL_VWM_WD%
  383. 47832 ENDIF
  384. 47836 ENDIF
  385. 47844 IF VIL_MY%<=VIL_WIN_Y%(VIL_WIN_AN%)-14 THEN
  386. 47848 VIL_WIN_Y%=VIL_MY%+(VIL_WIN_Y%-VIL_MY%)MOD VIL_VWM_ZD%
  387. 47852 VIL_WIN_Z%=VIL_WIN_Z%(VIL_WIN_AN%)+8:VIL_W1%=1
  388. 47856 ELSE IF VIL_MY%>=VIL_WIN_Z%(VIL_WIN_AN%)+8 THEN
  389. 47860 VIL_WIN_Z%=VIL_MY%-(VIL_MY%-VIL_WIN_Z%)MOD VIL_VWM_ZD%
  390. 47864 VIL_WIN_Y%=VIL_WIN_Y%(VIL_WIN_AN%)-14:VIL_W1%=2
  391. 47868 ELSE
  392. 47872 IF VIL_W1%=1 THEN
  393. 47876 VIL_W2%=VIL_WIN_Z%-VIL_VWM_YL%-21-VIL_MY%
  394. 47880 VIL_W2%=VIL_MY%-VIL_W2%*(VIL_W2%<0)
  395. 47884 VIL_WIN_Y%=VIL_W2%+(VIL_WIN_Y%-VIL_W2%)MOD VIL_VWM_ZD
  396. 47888 ELSE IF VIL_W1%=2 THEN
  397. 47892 VIL_W2%=VIL_WIN_Y%+VIL_VWM_YL%+21-VIL_MY%
  398. 47896 VIL_W2%=VIL_MY%-VIL_W2%*(VIL_W2%>0)
  399. 47900 VIL_WIN_Z%=VIL_W2%-(VIL_W2%-VIL_WIN_Z%)MOD VIL_VWM_ZD%
  400. 47904 ENDIF
  401. 47908 ENDIF
  402. 47912 LINE(VIL_WIN_X%,VIL_WIN_Y%)-(VIL_WIN_W%,VIL_WIN_Z%),XOR,7,B
  403. 47916 ENDIF
  404. 47920 WEND
  405. 47924 LINE(VIL_WIN_X%,VIL_WIN_Y%)-(VIL_WIN_W%,VIL_WIN_Z%),XOR,7,B
  406. 47928 IF MOUSE(2,1)THEN
  407. 47932 VIL_WIN_X%=VIL_WIN_X%(VIL_WIN_AN%)
  408. 47936 VIL_WIN_Y%=VIL_WIN_Y%(VIL_WIN_AN%)
  409. 47940 VIL_WIN_W%=VIL_WIN_W%(VIL_WIN_AN%)
  410. 47944 VIL_WIN_Z%=VIL_WIN_Z%(VIL_WIN_AN%)
  411. 47948 ELSE
  412. 47952 VIL_WIN_X%=VIL_WIN_X%+8:VIL_WIN_Y%=VIL_WIN_Y%+14
  413. 47956 VIL_WIN_W%=VIL_WIN_W%-8:VIL_WIN_Z%=VIL_WIN_Z%-8
  414. 47960 GOSUB*VIL_VWM_RS
  415. 47964 ENDIF
  416. 47968 MOUSE 2,VIL_VWM_MCA0$,VIL_VWM_MCD0$,VIL_VWM_MCX0%,VIL_VWM_MCY0%
  417. 47972 MOUSE 4,0,0,639,479
  418. 47976 IF VIL_VWM_PMB%THEN GOSUB*VIL_WIN_PMR
  419. 47980 RETURN
  420. 47988 *VIL_VWM_KRESIZE
  421. 48056 WHILE INKEY$<>"":WEND
  422. 48060 VIL_VWM_PMB%=VIL_WIN_PM%:GOSUB*VIL_WIN_PMA
  423. 48076 VIL_WIN_X%=VIL_WIN_X%-8:VIL_WIN_Y%=VIL_WIN_Y%-14
  424. 48080 VIL_WIN_W%=VIL_WIN_W%+8:VIL_WIN_Z%=VIL_WIN_Z%+8
  425. 48084 VIL_W2%=VIL_WIN_W%-VIL_VWM_WL%-7-VIL_VWM_XM%
  426. 48088 VIL_W3%=VIL_WIN_Z%-VIL_VWM_ZL%-7-VIL_VWM_YM%
  427. 48092 VIL_W4%=VIL_WIN_X%+VIL_VWM_WL%+7-VIL_VWM_WM%
  428. 48096 VIL_W5%=VIL_WIN_Y%+VIL_VWM_ZL%+13-VIL_VWM_ZM%
  429. 48100 VIL_W2%=VIL_VWM_XM%-VIL_W2%*(VIL_W2%>0)-8
  430. 48104 VIL_W3%=VIL_VWM_YM%-VIL_W3%*(VIL_W3%>0)-14
  431. 48108 VIL_W4%=VIL_VWM_WM%-VIL_W4%*(VIL_W4%<0)+8
  432. 48112 VIL_W5%=VIL_VWM_ZM%-VIL_W5%*(VIL_W5%<0)+8
  433. 48128 VIL_W0%=2:VIL_W1%=1
  434. 48132 LINE(VIL_WIN_X%,VIL_WIN_Y%)-(VIL_WIN_W%,VIL_WIN_Z%),XOR,7,B
  435. 48136 VIL_MSEL_KY%=0
  436. 48140 WHILE VIL_MSEL_KY%<>-1 AND VIL_MSEL_KY%<>-2
  437. 48144 GOSUB*VIL_MSEL_KY
  438. 48148 IF VIL_MSEL_KY%=-4 THEN 48144
  439. 48152 LINE(VIL_WIN_X%,VIL_WIN_Y%)-(VIL_WIN_W%,VIL_WIN_Z%),XOR,7,B
  440. 48156 VIL_W6%=((VIL_MSEL_KY%=-6)-(VIL_MSEL_KY%=-5))*VIL_VWM_WD%+((VIL_MSEL_KY%=-10)-(VIL_MSEL_KY%=-9))*VIL_VWM_WD%*8
  441. 48164 IF VIL_W0%=1 THEN
  442. 48168 VIL_WIN_X%=VIL_WIN_X%+VIL_W6%
  443. 48172 IF VIL_WIN_X%<VIL_W2%THEN
  444. 48176 VIL_WIN_W%=VIL_W4%-(VIL_W4%-VIL_WIN_W%)MOD VIL_VWM_WD%
  445. 48180 VIL_WIN_X%=VIL_WIN_X%(VIL_WIN_AN%)-8:VIL_W0%=2
  446. 48184 ELSE IF VIL_WIN_W%-VIL_VWM_XL%-15<VIL_WIN_X%THEN
  447. 48188 VIL_WIN_X%=VIL_WIN_X%(VIL_WIN_AN%)-8:VIL_W0%=2
  448. 48192 VIL_WIN_W%=VIL_WIN_X%+VIL_VWM_XL%+15+(VIL_WIN_W%-VIL_WIN_X%-VIL_VWM_XL%-15)MOD VIL_VWM_WD%
  449. 48196 ENDIF
  450. 48200 ELSE
  451. 48204 VIL_WIN_W%=VIL_WIN_W%+VIL_W6%
  452. 48208 IF VIL_WIN_W%<VIL_WIN_X%+VIL_VWM_XL%+15 THEN
  453. 48212 VIL_WIN_W%=VIL_WIN_W%(VIL_WIN_AN%)+8:VIL_W0%=1
  454. 48216 VIL_WIN_X%=VIL_WIN_W%-VIL_VWM_XL%-15+(VIL_WIN_X%-VIL_WIN_W%+VIL_VWM_XL%+15)MOD VIL_VWM_WD%
  455. 48220 ELSE IF VIL_W4%<VIL_WIN_W%THEN
  456. 48224 VIL_WIN_X%=VIL_W2%-(VIL_W2%-VIL_WIN_X%)MOD VIL_VWM_WD%
  457. 48228 VIL_WIN_W%=VIL_WIN_W%(VIL_WIN_AN%)+8:VIL_W0%=1
  458. 48232 ENDIF
  459. 48236 ENDIF
  460. 48244 VIL_W6%=((VIL_MSEL_KY%=-7)-(VIL_MSEL_KY%=-8))*VIL_VWM_ZD%+((VIL_MSEL_KY%=-11)-(VIL_MSEL_KY%=-12))*VIL_VWM_ZD%*8
  461. 48252 IF VIL_W1%=1 THEN
  462. 48256 VIL_WIN_Y%=VIL_WIN_Y%+VIL_W6%
  463. 48260 IF VIL_WIN_Y%<VIL_W3%THEN
  464. 48264 VIL_WIN_Z%=VIL_W5%-(VIL_W5%-VIL_WIN_Z%)MOD VIL_VWM_ZD%
  465. 48268 VIL_WIN_Y%=VIL_WIN_Y%(VIL_WIN_AN%)-14:VIL_W1%=2
  466. 48272 ELSE IF VIL_WIN_Z%-VIL_VWM_YL%-21<VIL_WIN_Y%THEN
  467. 48276 VIL_WIN_Y%=VIL_WIN_Y%(VIL_WIN_AN%)-14:VIL_W1%=2
  468. 48280 VIL_WIN_Z%=VIL_WIN_Y%+VIL_VWM_YL%+21+(VIL_WIN_Z%-VIL_WIN_Y%-VIL_VWM_YL%-21)MOD VIL_VWM_ZD%
  469. 48284 ENDIF
  470. 48288 ELSE
  471. 48292 VIL_WIN_Z%=VIL_WIN_Z%+VIL_W6%
  472. 48296 IF VIL_WIN_Z%<VIL_WIN_Y%+VIL_VWM_YL%+21 THEN
  473. 48300 VIL_WIN_Z%=VIL_WIN_Z%(VIL_WIN_AN%)+8:VIL_W1%=1
  474. 48304 VIL_WIN_Y%=VIL_WIN_Z%-VIL_VWM_YL%-21+(VIL_WIN_Y%-VIL_WIN_Z%+VIL_VWM_YL%+21)MOD VIL_VWM_ZD%
  475. 48308 ELSE IF VIL_W5%<VIL_WIN_Z%THEN
  476. 48312 VIL_WIN_Y%=VIL_W3%-(VIL_W3%-VIL_WIN_Y%)MOD VIL_VWM_ZD%
  477. 48316 VIL_WIN_Z%=VIL_WIN_Z%(VIL_WIN_AN%)+8:VIL_W1%=1
  478. 48320 ENDIF
  479. 48324 ENDIF
  480. 48328 LINE(VIL_WIN_X%,VIL_WIN_Y%)-(VIL_WIN_W%,VIL_WIN_Z%),XOR,7,B
  481. 48332 WEND
  482. 48340 LINE(VIL_WIN_X%,VIL_WIN_Y%)-(VIL_WIN_W%,VIL_WIN_Z%),XOR,7,B
  483. 48344 IF VIL_MSEL_KY%=-2 THEN
  484. 48348 VIL_WIN_X%=VIL_WIN_X%+8:VIL_WIN_Y%=VIL_WIN_Y%+14
  485. 48352 VIL_WIN_W%=VIL_WIN_W%-8:VIL_WIN_Z%=VIL_WIN_Z%-8
  486. 48356 GOSUB*VIL_VWM_RS
  487. 48360 ELSE
  488. 48364 VIL_WIN_X%=VIL_WIN_X%(VIL_WIN_AN%)
  489. 48368 VIL_WIN_Y%=VIL_WIN_Y%(VIL_WIN_AN%)
  490. 48372 VIL_WIN_W%=VIL_WIN_W%(VIL_WIN_AN%)
  491. 48376 VIL_WIN_Z%=VIL_WIN_Z%(VIL_WIN_AN%)
  492. 48380 ENDIF
  493. 48384 IF VIL_VWM_PMB%THEN GOSUB*VIL_WIN_PMR
  494. 48388 RETURN
  495. 48396 *VIL_VWM_RS
  496. 48460 VIL_WIN_BFO&(VIL_WIN_AN%+1)=VIL_WIN_BFO&(VIL_WIN_AN%)+INT((INT((VIL_WIN_W%-VIL_WIN_X%+24)/8)*(VIL_WIN_Z%-VIL_WIN_Y%+23)*4+1)/2)
  497. 48464 IF VIL_WIN_BFO&(VIL_WIN_AN%+1)<VIL_WIN_BFO&(VIL_WIN_AN%)THEN
  498. 48468 VIL_WIN_BFO&(VIL_WIN_AN%+1)=VIL_WIN_BFO&(VIL_WIN_AN%)
  499. 48472 ENDIF
  500. 48476 VIL_E%=0
  501. 48480 GET@A(VIL_WIN_X%(VIL_WIN_AN%),VIL_WIN_Y%(VIL_WIN_AN%))-(VIL_WIN_W%(VIL_WIN_AN%),VIL_WIN_Z%(VIL_WIN_AN%)),VIL_WIN_BF%,VIL_WIN_BFO&(VIL_WIN_AN%+1)
  502. 48484 VIL_VWM_WX%=VIL_WIN_W%(VIL_WIN_AN%)-VIL_WIN_X%(VIL_WIN_AN%)
  503. 48488 VIL_VWM_WY%=VIL_WIN_Z%(VIL_WIN_AN%)-VIL_WIN_Y%(VIL_WIN_AN%)
  504. 48492 IF VIL_E%=0 THEN
  505. 48496 VIL_WIN_X%(VIL_WIN_AN%+1)=VIL_WIN_X%
  506. 48500 VIL_WIN_Y%(VIL_WIN_AN%+1)=VIL_WIN_Y%
  507. 48504 VIL_WIN_W%(VIL_WIN_AN%+1)=VIL_WIN_W%
  508. 48508 VIL_WIN_Z%(VIL_WIN_AN%+1)=VIL_WIN_Z%
  509. 48512 GOSUB*VIL_VWM_CL
  510. 48520 VIL_WIN_X%=VIL_WIN_X%(VIL_WIN_AN%+2)
  511. 48524 VIL_WIN_Y%=VIL_WIN_Y%(VIL_WIN_AN%+2)
  512. 48528 VIL_WIN_W%=VIL_WIN_W%(VIL_WIN_AN%+2)
  513. 48532 VIL_WIN_Z%=VIL_WIN_Z%(VIL_WIN_AN%+2)
  514. 48536 VIL_VWM_AT%=VIL_VWM_AT%(VIL_WIN_AN%+1)
  515. 48540 VIL_VWM_T$=VIL_VWM_T$(VIL_WIN_AN%+1)
  516. 48544 GOSUB*VIL_VWM_OP
  517. 48548 GOSUB*VIL_WIN_PMR
  518. 48552 PUT@A(0,0)-(VIL_VWM_WX%,VIL_VWM_WY%),VIL_WIN_BF%,,,,,VIL_WIN_BFO&(VIL_WIN_AN%+1)
  519. 48560 GOSUB*VIL_WIN_PMA
  520. 48564 VIL_VWM_R%=16
  521. 48568 ELSE
  522. 48572 VIL_WIN_X%=VIL_WIN_X%(VIL_WIN_AN%)
  523. 48576 VIL_WIN_Y%=VIL_WIN_Y%(VIL_WIN_AN%)
  524. 48580 VIL_WIN_W%=VIL_WIN_W%(VIL_WIN_AN%)
  525. 48584 VIL_WIN_Z%=VIL_WIN_Z%(VIL_WIN_AN%)
  526. 48588 VIL_VWM_R%=0
  527. 48592 ENDIF
  528. 48596 RETURN
  529. 48620 *VIL_SEL_INITM
  530. 48660 RETURN
  531. 48668 *VIL_SEL_OK
  532. 48772 SYMBOL(VIL_X%+4,VIL_Y%+4),"確認",1,1,7
  533. 48776 LINE(VIL_X%+2,VIL_Y%+2)-(VIL_X%+37,VIL_Y%+21),PSET,7,B
  534. 48780 VIL_W%=VIL_X%+39:VIL_Z%=VIL_Y%+23
  535. 48784 VIL_XN%=1:VIL_YN%=1:VIL_C%=15:VIL_MSEL_MN%=0:VIL_MSEL_BC%=0
  536. 48788 VIL_MSEL_BB%=1:VIL_MSEL_BE%=1
  537. 48792 GOSUB*VIL_MSEL_M
  538. 48796 GOSUB*VIL_MSEL_BC
  539. 48800 RETURN
  540. 48808 *VIL_SEL_YN
  541. 48924 SYMBOL(VIL_X%+4,VIL_Y%+4),"はい    いいえ",1,1,7
  542. 48928 LINE(VIL_X%+2,VIL_Y%+2)-(VIL_X%+53,VIL_Y%+21),PSET,7,B
  543. 48932 LINE(VIL_X%+66,VIL_Y%+2)-(VIL_X%+117,VIL_Y%+21),PSET,7,B
  544. 48936 VIL_W%=VIL_X%+55:VIL_Z%=VIL_Y%+23
  545. 48940 VIL_XL%=64:VIL_XN%=2:VIL_YN%=1:VIL_C%=15:VIL_MSEL_BD%=0
  546. 48944 VIL_MSEL_MN%=0:VIL_MSEL_BC%=0:VIL_MSEL_BB%=1:VIL_MSEL_BE%=2
  547. 48948 GOSUB*VIL_MSEL_M
  548. 48952 GOSUB*VIL_MSEL_BC
  549. 48956 IF VIL_KN%=-1 THEN VIL_KN%=2
  550. 48960 RETURN
  551. 48968 *VIL_SEL_DO
  552. 49088 SYMBOL(VIL_X%+4,VIL_Y%+4),"実行  取消",1,1,7
  553. 49092 LINE(VIL_X%+2,VIL_Y%+2)-(VIL_X%+37,VIL_Y%+21),PSET,7,B
  554. 49096 LINE(VIL_X%+50,VIL_Y%+2)-(VIL_X%+85,VIL_Y%+21),PSET,7,B
  555. 49100 VIL_W%=VIL_X%+39:VIL_Z%=VIL_Y%+23
  556. 49104 VIL_XL%=48:VIL_XN%=2:VIL_YN%=1:VIL_C%=15:VIL_MSEL_BD%=0
  557. 49108 VIL_MSEL_MN%=0:VIL_MSEL_BC%=0:VIL_MSEL_BB%=1:VIL_MSEL_BE%=2
  558. 49112 GOSUB*VIL_MSEL_M
  559. 49116 GOSUB*VIL_MSEL_BC
  560. 49120 IF VIL_KN%=-1 THEN VIL_KN%=2
  561. 49124 RETURN
  562.